using System;
using System.Collections.Generic;
using System.Text;
using EYDIngenieria.ERP.ObjetosDeNegocio.Dominio;
using Castle.ActiveRecord;
using NHibernate.Expression;

namespace EYDIngenieria.ERP.ObjetosDeNegocio.Repositorio
{
   public class RepositorioUsuario
    {
        public void Agregar(Usuario u)
        {
           u.Create();
        }

        public Usuario[] Listar()
        {
            ICriterion[] query = { Expression.Eq("Activo", true) };
            Order[] sort = { Order.Asc("NombreUsuario") };
            return Usuario.FindAll(sort, query);
           
        }

        public void Modificar(Usuario u)
        {
            u.UpdateAndFlush();
        }

        public void Eliminar(Usuario u)
        {
            //u.DeleteAndFlush();
            u.Activo = false;
            u.UpdateAndFlush();
        }

       public Usuario[] Buscar(string nombreUsuario)
       {
           ICriterion[] query = { Expression.Eq("NombreUsuario", nombreUsuario), Expression.Eq("Activo", true) };
           Order[] sort = { Order.Asc("NombreUsuario") }; 
           return Usuario.FindAll(sort, query);
           
       }

       public Usuario Obtener(int id)
       {
           return Usuario.Find(id);
       }
    }
}
